package q123_maxProfit;

import java.util.List;

public class Solution_1 {
    public static void main(String[] args) {
        Solution_1 s = new Solution_1();
        int[] p = {};
        System.out.println(s.maxProfit(p));
    }

    /**
     * 只能够买卖两次股票，想要找出最大值，可以通过将时间分拆为两端，遍历所有的天数
     * 求出(0, i) (i, len)的最大值之和即可
     * 但是这种方法会超时，不能满足条件
     */
    public int maxProfit(int[] prices) {
        int profit = 0;
        for (int i = 0; i < prices.length; i++) {
            profit = Math.max(profit, partOfmaxProfit(prices, 0, i) + partOfmaxProfit(prices, i, prices.length));
        }
        return profit;

    }

    public int partOfmaxProfit(int[] prices, int in, int out) {
        int profit = 0;
        int low = prices[in];
        for (int i = in; i < out; i++) {
            if(prices[i] < low){
                low = prices[i];
            }
            profit = Math.max(profit, prices[i] - low);
        }
        return profit;

    }
}
